Foi originado do National Institute of Diabetes and Digestive and Kidney Diseases.
Essa base foi criada com base nos Pima, um grupo de nativos americanos que vivem em uma área que atualmente abrange o centro e o sul do estado do Arizona.
A base possui 768 observações e 9 colunas. O objetivo é classificar se um paciente tem diabetes com base em algumas características do paciente.
Descrição das colunas
Pregnancies: Número de gestações da paciente.
Glucose: Concentração de glicose plasmática em teste oral de tolerância à glicose.
Apenas as colunas de glicose, pressão arterial, espessura da dobra cutânea do tríceps, nível de insulina e IMC. Aquela que mais possui valores ausentes é a variável de nível de insulina.
As variáveis apresentam uma assimetria negativa, sendo a variável de pressão arterial a única mais simétrica. Além disso, observando a distribuição dos diabéticos e não diabéticos para cada variável, eles apresentam um padrão de comportamento bastante similar.
A maioria das variáveis independentes não apresentam uma alta correlação. No entanto, os níveis de insulina tem uma alta correlação com a glicose, o IMC tem uma alta correlação com a espessura da dobra cutânea do tríceps e a idade tem uma alta correlação com a quantidade de gravidez.
Métricas utilizadas para avalização dos modelos
Métricas utilizadas para avalização dos modelos
ROC AUC
Acurácia
Brier Score: \(BS = \frac{1}{N}\sum_{t=1}^N\left(f_t - o_t\right)^2\). \(N\) é o tamanho da amostra classificada, \(f_t\) é a probabilidade predita e \(o_t\) é o valor observado.
Os dados foram divididos entre teste e treino, com 20% para o conjunto de teste e estratificado pela variável dependente.
Os valores ausentes foram substituídos pela mediana das variáveis.
Foram criadas novas variáveis, idade por nível de insulina, glicose por predisposição de ter diabetes e o produto entre IMC e a espessura da dobra cutânea do tríceps.
Todas as variáveis foram transformadas com \(\log \left(1 + x\right)\) e normalizadas. Além disso, foi utilizado o utilizado o step_nzv, que serve para remover variáveis com variância próximo de zero.
autoplot(grid_results, metric ="roc_auc") +theme_bw() +labs(y ="Métrica", x ="")
autoplot(grid_results, select_best =TRUE) +theme_bw() +labs(y ="Métrica", x ="")
Algoritmos e validação cruzada
A validação cruzada foi realizada com 10 folds, estratificado pela variável dependente e foi criado um grid de 50 combinações entre os hiperparâmetros. Assim, foram otimizados os algoritmos a quantidade de vizinhos e o tipo de distância utilizada. Foram otimizados, para o naive bayes, o parâmetro de suavidade para o limite da classe e a correção da suavidade chamado de Laplace. Foram também otimizados os hiperparâmetros de regularização da regressão logística.
O modelo que apresentou o melhor desempenho geral foi o Boosted Tree, destacando-se especialmente pelo maior valor de ROC AUC (0,8787) e pelo menor Brier Score (0,1357), indicando excelente capacidade de discriminação e boa calibração das probabilidades. Sua acurácia foi de 78,57%, compatível com os demais bons modelos. Outro destaque positivo foi o LSVM, que obteve a maior acurácia (79,22%), embora com um Brier Score um pouco mais alto (0,1465) em comparação ao Boosted Tree.
Por outro lado, o modelo que apresentou o pior desempenho foi o Naive Bayes, que teve as piores estatísticas em todas as métricas avaliadas, com acurácia de 70,13%, ROC AUC de 0,8128 e um Brier Score de 0,1842, indicando desempenho inferior tanto em acurácia quanto em qualidade de probabilidade preditiva.
Hiperparâmetros selecionados dos modelos tunados
# Hiperparâmetros para o K-NNgrid_results |>extract_workflow_set_result("knn_fit") |>select_by_one_std_err(desc(neighbors), metric ="roc_auc") |> knitr::kable()